﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WPControla.Client.Services;
using System.Windows.Input;
using WPControla.Client.Services.Podcast;
using WPControla.Client.Services.Rss;

namespace WPControla.Client.ViewModels
{
    public interface IVMMainPage
    {
        /// <summary>
        /// List of articles.
        /// </summary>
        Entities.Rss ArticlesList { get; set; }

        /// <summary>
        /// List of chapters.
        /// </summary>
        Entities.Podcast ChaptersList { get; set; }

        /// <summary>
        /// Selected chapter
        /// </summary>
        Entities.PodcastItem SelectedChapter { get; set; }

        /// <summary>
        /// List of tweets.
        /// </summary>
        Entities.Rss TwitterList { get; set; }

        /// <summary>
        /// This command preview the podcast chapter.
        /// </summary>
        ICommand PreviewAudioCommand { get; }

        /// <summary>
        /// This method executes the command action.
        /// </summary>
        void ExecutePreviewAudioCommand(Entities.PodcastItem podcast);

        /// <summary>
        /// Executed when the petition of podcast has been completed.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Podcast_Completed(object sender, PodcastDownloadEventArgs e);

        /// <summary>
        /// Executed when the petition of articles has been completed.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void RssArticles_Completed(object sender, RssDownloadEventArgs e);

        /// <summary>
        /// Executed when the petition of twitter has been completed.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void RssTwitter_Completed(object sender, RssDownloadEventArgs e);
    }
}
